using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Unitins.Component.Repository.Sepsi;

public partial class Gerenciar : System.Web.UI.Page
{
    private DisciplinaCollection dc;

    public DisciplinaCollection Dc
    {
        get 
        {
            if (dc == null)
                dc = new DisciplinaCollection();
            return dc;
        }
        set
        {
            dc = value;
        }
    }

    private UsuarioTipo uTipo;

    public UsuarioTipo UTipo
    {
        get 
        { 
            return UsuarioTipoManager.Buscar("Administrador", UsuarioTipoAttribute.Descricao);
        }
        set { uTipo = value; }
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request.QueryString["b"] != null)
            {
                if (Request.QueryString["b"].ToString().Equals("inserir"))
                {
                    btnCadastrar.Visible = true;
                    btnEditar.Visible = false;
                    LimparForm();
                    mvGerenciamento.SetActiveView(Cadastro);
                }
                else
                    mvGerenciamento.SetActiveView(Listar);
            }
            else
            {
                mvGerenciamento.SetActiveView(Listar);
            }
            ddlDisciplina.DataSource = DisciplinaManager.Pesquisar(DisciplinaAttribute.Nome, Unitins.Component.PersistenceLayer.DataBase.Parameter.PLSearchMounterSortType.Ascending);
            ddlDisciplina.DataTextField = "Nome";
            ddlDisciplina.DataValueField = "IdDisciplina";
            ddlDisciplina.DataBind();
            if (Session["Usuario"]!=null && UTipo != null && UTipo.Descricao == "Administrador")
            {
                FildDadosDisciplina.Visible = false;
                FildDadosProfessor.Visible = false;
            }
            else
            {
                Response.Redirect("Default.aspx");
            }
        }
    }
    protected void btnInserirGraduacao_Click(object sender, ImageClickEventArgs e)
    {
        Dc.Add(DisciplinaManager.Buscar(Convert.ToInt64(ddlDisciplina.SelectedValue))); 
        rptDisciplina.DataSource = Dc;
        rptDisciplina.DataBind();
    }
    protected void btnAut_Click(object sender, ImageClickEventArgs e)
    {
        Pessoa p = new Pessoa();
        p.Ativo = true;
        p.Bairro = txtBairro.Text;
        p.Cep = txtCep.Text;
        p.Cidade = txtCidade.Text;
        p.Cpf = txtCpf.Text;
        p.DataNascimento = Convert.ToDateTime(txtDataNascimento.Text);
        p.Email = txtEmail.Text;
        p.Endereco = txtEndereco.Text;
        p.Estado = txtEstado.Text; 
        p.Nacionalidade = txtNacionalidade.Text; 
        p.Naturalidade = txtNaturalidade.Text;
        p.Nome = txtNome.Text;
        p.NomeMae = txtNomeMae.Text;
        p.NomePai = txtNomePai.Text;
        p.Rg = txtRg.Text;
        p.RgData = Convert.ToDateTime(txtRgData.Text);
        p.RgOrgaoUf = txtOrgaoUf.Text;
        p.TelCelular = txtTelCelular.Text;
        p.TelComercial = txtTelComercial.Text;
        p.TelResidencial = txtTelResidencial.Text;
        if (PessoaManager.Inserir(p))
        {
            p = PessoaManager.Buscar(txtCpf.Text, PessoaAttribute.Cpf);
            if (p != null)
            {
                Usuario u = new Usuario();
                u.IdPessoa = p.IdPessoa;
                u.IdUsuarioTipo = UTipo.IdUsuarioTipo;
                u.Login = txtLogin.Text;
                u.Senha = txtSenha.Text;
                u.Matricula = txtMatricula.Text;
                if (UsuarioManager.Inserir(u))
                {
                    mvGerenciamento.SetActiveView(Listar);
                    MensagemForm.ShowMessage(MessageType.SUCCESSO, "Registro inserido com sucesso.");
                }
            }
        }
    }
    protected void btnOk_Click(object sender, ImageClickEventArgs e)
    {
        rptAdministrador.DataSource = UsuarioManager.BuscarAdministrador(Convert.ToInt32(ddlBuscarPorCampo.SelectedValue), txtBuscarPorValor.Text, Convert.ToInt32(ddlOrdenadoPorCampo.SelectedValue), ddlOrdenadoPorValor.SelectedValue.ToString());
        rptAdministrador.DataBind();
    }

    protected void btnRemoverUsuario(object sender, CommandEventArgs e)
    {
        Usuario u = UsuarioManager.Buscar(Convert.ToInt64(e.CommandArgument));
        if (u != null)
        {
            Pessoa p = PessoaManager.Buscar(u.IdPessoa);
            if (UsuarioManager.Excluir(u))
            { 
                if(PessoaManager.Excluir(p))
                    MensagemForm.ShowMessage(MessageType.SUCCESSO, "Registro removido com sucesso.");
            }
            else
                MensagemForm.ShowMessage(MessageType.ERRO, "Problemas ao tentar remover este registro.");
        }
        btnOk_Click(null, null);
    }

    protected string GetNome(object IdPessoa)
    {
        return PessoaManager.Buscar(Convert.ToInt64(IdPessoa)).Nome;
    }

    protected string GetUsuarioTipo(object IdUsuarioTipo)
    {
        return UsuarioTipoManager.Buscar(Convert.ToInt64(IdUsuarioTipo)).Descricao;
    }
    protected void btnEditarUsuario(object sender, CommandEventArgs e)
    {
        btnCadastrar.Visible = false;
        btnEditar.Visible = true;
        mvGerenciamento.SetActiveView(Cadastro);
        Usuario u = UsuarioManager.Buscar(Convert.ToInt64(e.CommandArgument));
        if (u != null)
        {
            HfIdUsuario.Value = u.IdUsuario.ToString();
            txtLogin.Text = u.Login;
            txtMatricula.Text = u.Matricula;
            Pessoa p = PessoaManager.Buscar(u.IdPessoa);
            if (p != null)
            {
                txtBairro.Text = p.Bairro;
                txtCep.Text = p.Cep;
                txtCidade.Text = p.Cidade;
                txtCpf.Text = p.Cpf;
                txtDataNascimento.Text = p.DataNascimento.ToString("dd/MM/yyyy");
                txtEmail.Text = p.Email;
                txtEndereco.Text = p.Endereco;
                txtEstado.Text = p.Estado;
                txtNacionalidade.Text = p.Nacionalidade;
                txtNaturalidade.Text = p.Naturalidade;
                txtNome.Text = p.Nome;
                txtNomeMae.Text = p.NomeMae;
                txtNomePai.Text = p.NomePai;
                txtRg.Text = p.Rg;
                txtRgData.Text = p.RgData.ToString("dd/MM/yyyy");
                txtOrgaoUf.Text = p.RgOrgaoUf;
                txtTelCelular.Text = p.TelCelular;
                txtTelComercial.Text = p.TelComercial;
                txtTelResidencial.Text = p.TelResidencial;
            }
        }
    }
    protected void btnEditar_Click(object sender, ImageClickEventArgs e)
    {
        Usuario u = UsuarioManager.Buscar(Convert.ToInt64(HfIdUsuario.Value));
        if (u != null)
        {
            Pessoa p = PessoaManager.Buscar(u.IdPessoa);
            p.Bairro = txtBairro.Text;
            p.Cep = txtCep.Text;
            p.Cidade = txtCidade.Text;
            p.Cpf = txtCpf.Text;
            p.DataNascimento = Convert.ToDateTime(txtDataNascimento.Text);
            p.Email = txtEmail.Text;
            p.Endereco = txtEndereco.Text;
            p.Estado = txtEstado.Text;
            p.Nacionalidade = txtNacionalidade.Text;
            p.Naturalidade = txtNaturalidade.Text;
            p.Nome = txtNome.Text;
            p.NomeMae = txtNomeMae.Text;
            p.NomePai = txtNomePai.Text;
            p.Rg = txtRg.Text;
            p.RgData = Convert.ToDateTime(txtRgData.Text);
            p.RgOrgaoUf = txtOrgaoUf.Text;
            p.TelCelular = txtTelCelular.Text;
            p.TelComercial = txtTelComercial.Text;
            p.TelResidencial = txtTelResidencial.Text;
            if (PessoaManager.Alterar(p))
            {
                u.Login = txtLogin.Text;
                u.Senha = txtSenha.Text;
                u.Matricula = txtMatricula.Text;
                if (UsuarioManager.Alterar(u))
                {
                    mvGerenciamento.SetActiveView(Listar);
                    MensagemForm.ShowMessage(MessageType.SUCCESSO, "Registro editado com sucesso.");
                }
            }
        }
    }
    protected void btnCancelar_Click(object sender, ImageClickEventArgs e)
    {
        mvGerenciamento.SetActiveView(Listar);
    }

    protected void LimparForm()
    {
        txtBairro.Text = "";
        txtCep.Text = "";
        txtCidade.Text = "";
        txtCpf.Text = "";
        txtDataNascimento.Text = "";
        txtEmail.Text = "";
        txtEndereco.Text = "";
        txtEstado.Text = "";
        txtNacionalidade.Text = "";
        txtNaturalidade.Text = "";
        txtNome.Text = "";
        txtNomeMae.Text = "";
        txtNomePai.Text = "";
        txtRg.Text = "";
        txtRgData.Text = "";
        txtOrgaoUf.Text = "";
        txtTelCelular.Text = "";
        txtTelComercial.Text = "";
        txtTelResidencial.Text = "";
        txtLogin.Text = "";
        txtMatricula.Text = "";
    }
}
